package com.moliku.insurance.common.constant;

import lombok.Getter;

/**
 * 保单状态
 *
 * @author Mr.Liu
 * @since 2021/3/2
 */
@Getter
public enum OrderEnum {
    /**
     * 超时关闭（系统关闭订单）
     */
    TIME_OUT(0, "TIMEOUT", "超时关闭（系统关闭订单）"),

    /**
     * 订单待付款
     */
    UNPAIED(1, "UNPAIED", "订单待付款"),

    /**
     * 订单关闭中（全额退款）
     */
    CLOSING(2, "CLOSING", "订单关闭中（全额退款）"),

    /**
     * 订单已关闭（投保失败）
     */
    CLOSED(3, "CLOSED", "订单已关闭（投保失败）"),

    /**
     * 订单已付款
     */
    SUCCESS(4, "SUCCESS", "订单已付款"),

    /**
     * 交易结束，不可退款
     */
    CLOSED_NO_REFUND(5, "CLOSED_NO_REFUND", "交易结束，不可退款"),

    /**
     * 订单撤销中（用户主动）
     */
    CANCELING(6, "CANCELING", "订单撤销中（用户主动）"),

    /**
     * 订单已撤销（用户主动）
     */
    CANCEL(7, "CANCEL", "订单已撤销（用户主动）");

    /**
     * 值
     */
    private final Integer value;
    /**
     * 标识
     */
    private final String tag;
    /**
     * 描述
     */
    private final String desc;

    OrderEnum(Integer value, String tag, String desc) {
        this.tag = tag;
        this.value = value;
        this.desc = desc;
    }

    /**
     * 获取订单状态
     *
     * @param value 状态值
     * @return 公司名称
     */
    @SuppressWarnings("unused")
    public static OrderEnum getOrder(Integer value) {
        if (null != value) {
            for (OrderEnum orderEnum : OrderEnum.values()) {
                if (orderEnum.value.equals(value)) {
                    return orderEnum;
                }
            }
        }
        return null;
    }
}
